+Fri Feb 1 14:50:36 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkrc.c (gtk_rc_parse_string): Handle reparsing
+ any strings if the theme changes. (#69465)
+
+ * tests/testgtk.c: Add a test for gtk_rc_parse_string().
+
Fri Feb 1 20:50:29 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_dy_to_top_row): set tree to
+Fri Feb 1 14:50:36 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkrc.c (gtk_rc_parse_string): Handle reparsing
+ any strings if the theme changes. (#69465)
+
+ * tests/testgtk.c: Add a test for gtk_rc_parse_string().
+
Fri Feb 1 20:50:29 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_dy_to_top_row): set tree to
+Fri Feb 1 14:50:36 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkrc.c (gtk_rc_parse_string): Handle reparsing
+ any strings if the theme changes. (#69465)
+
+ * tests/testgtk.c: Add a test for gtk_rc_parse_string().
+
Fri Feb 1 20:50:29 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_dy_to_top_row): set tree to
+Fri Feb 1 14:50:36 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkrc.c (gtk_rc_parse_string): Handle reparsing
+ any strings if the theme changes. (#69465)
+
+ * tests/testgtk.c: Add a test for gtk_rc_parse_string().
+
Fri Feb 1 20:50:29 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_dy_to_top_row): set tree to
+Fri Feb 1 14:50:36 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkrc.c (gtk_rc_parse_string): Handle reparsing
+ any strings if the theme changes. (#69465)
+
+ * tests/testgtk.c: Add a test for gtk_rc_parse_string().
+
Fri Feb 1 20:50:29 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_dy_to_top_row): set tree to
+Fri Feb 1 14:50:36 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkrc.c (gtk_rc_parse_string): Handle reparsing
+ any strings if the theme changes. (#69465)
+
+ * tests/testgtk.c: Add a test for gtk_rc_parse_string().
+
Fri Feb 1 20:50:29 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_dy_to_top_row): set tree to
+Fri Feb 1 14:50:36 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkrc.c (gtk_rc_parse_string): Handle reparsing
+ any strings if the theme changes. (#69465)
+
+ * tests/testgtk.c: Add a test for gtk_rc_parse_string().
+
Fri Feb 1 20:50:29 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_dy_to_top_row): set tree to
struct _GtkRcFile
{
+ gboolean is_string; /* If TRUE, name is a string to parse with gtk_rc_parse_string() */
time_t mtime;
gchar *name;
gchar *canonical_name;
void
gtk_rc_parse_string (const gchar *rc_string)
{
+ GtkRcFile *rc_file;
+ /* This is wrong; once we have meaingful RC context, we need to parse the
+ * string in all contexts, and in fact, in future contexts as well.
+ */
+ GtkRcContext *context = gtk_rc_context_get (gtk_settings_get_default ());
+
g_return_if_fail (rc_string != NULL);
- gtk_rc_parse_any (gtk_rc_context_get (gtk_settings_get_default ()),
- "-", -1, rc_string); /* FIXME */
+ rc_file = g_new (GtkRcFile, 1);
+ rc_file->is_string = TRUE;
+ rc_file->name = g_strdup (rc_string);
+ rc_file->canonical_name = NULL;
+ rc_file->mtime = 0;
+ rc_file->reload = TRUE;
+
+ context->rc_files = g_slist_append (context->rc_files, rc_file);
+
+ gtk_rc_parse_any (context, "-", -1, rc_string);
}
static void
if (!tmp_list)
{
rc_file = g_new (GtkRcFile, 1);
+ rc_file->is_string = FALSE;
rc_file->name = g_strdup (filename);
rc_file->canonical_name = NULL;
rc_file->mtime = 0;
while (tmp_list)
{
rc_file = tmp_list->data;
-
- if (!lstat (rc_file->name, &statbuf) &&
- (statbuf.st_mtime > rc_file->mtime))
+
+ if (!rc_file->is_string)
{
- mtime_modified = TRUE;
- break;
+ if (!lstat (rc_file->name, &statbuf) &&
+ (statbuf.st_mtime > rc_file->mtime))
+ {
+ mtime_modified = TRUE;
+ break;
+ }
}
tmp_list = tmp_list->next;
{
rc_file = tmp_list->data;
if (rc_file->reload)
- gtk_rc_parse_file (context, rc_file->name, GTK_PATH_PRIO_RC, TRUE);
+ {
+ if (rc_file->is_string)
+ gtk_rc_parse_string (rc_file->name);
+ else
+ gtk_rc_parse_file (context, rc_file->name, GTK_PATH_PRIO_RC, TRUE);
+ }
if (rc_file->canonical_name != rc_file->name)
g_free (rc_file->canonical_name);
label = gtk_label_new (buffer);
gtk_box_pack_start (GTK_BOX (box1), label, FALSE, FALSE, 0);
+ gtk_widget_set_name (label, "testgtk-version-label");
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 10);
"debug_msg",
1,
GTK_TYPE_STRING, "GtkWidgetClass <ctrl><release>9 test");
+
+ /* We use gtk_rc_parse_string() here so we can make sure it works across theme
+ * changes
+ */
+ gtk_rc_parse_string ("style \"testgtk-version-label\" { "
+ " fg[NORMAL] = \"#ff0000\"\n"
+ " font = \"Sans 18\"\n"
+ "}\n"
+ "widget \"*.testgtk-version-label\" style \"testgtk-version-label\"");
+
create_main_window ();
gtk_main ();